package entidades.DAOs;


import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

import entidades.Partido;
import entidades.DTOs.DTOPartido;

import utilidades.ConexionBD;

public class DAOpartidos {
	
	public static ArrayList <Partido> selectPartidos(int id_fecha) throws SQLException, ClassNotFoundException{
        
        ConexionBD.conectar();
        Statement sentencia=ConexionBD.conexion.createStatement();
        
        String sentenciaEjecutar = "SELECT * \n"
        				+ "FROM Partido \n"
                        + "WHERE "+id_fecha+" = id_fecha;";
        
        ResultSet resultadoConsulta=sentencia.executeQuery(sentenciaEjecutar);
        
        ArrayList <Partido> listaPartidos = new ArrayList <Partido>();
        
        while(resultadoConsulta.next()){
            
            Partido filaPartido = new Partido();
            filaPartido.setId_partido(resultadoConsulta.getInt(1));
            filaPartido.setObservaciones(resultadoConsulta.getString(2));
            filaPartido.setGolesLocal(resultadoConsulta.getInt(3));
            filaPartido.setGolesVisitante(resultadoConsulta.getInt(4));
            filaPartido.setSuspendido(resultadoConsulta.getBoolean(5));
            filaPartido.setId_fecha(resultadoConsulta.getInt(6));
            filaPartido.setId_torneo(resultadoConsulta.getInt(7));
            filaPartido.setId_jugador(resultadoConsulta.getInt(8));
            
            filaPartido.setId_equipoLocal(resultadoConsulta.getInt(9));//no aparece en la tabla partido
            filaPartido.setId_equipoVisitante(resultadoConsulta.getInt(10));//No aparece en la tabla partido
            /*Agregar idloca e idvisitante*/
           // ResultSet idLocal = sentencia.executeQuery("SELECT id_equipoLocal FROM Partido  WHERE id_partido ="+ filaPartido.getId_partido()+";");
           // filaPartido.setId_equipoLocal(idLocal.getInt(1));
            
           // ResultSet idVisit = sentencia.executeQuery("SELECT id_equipoVisitante FROM Partido  WHERE id_partido ="+ filaPartido.getId_partido()+";");
           // filaPartido.setId_equipoLocal(idVisit.getInt(1));
            
            listaPartidos.add(filaPartido);
                
        }
        
        ConexionBD.desconectar();

        return listaPartidos;
                

	}

	public static Partido getPartido(int id_partido) throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
		ConexionBD.conectar();
		Statement sql = ConexionBD.conexion.createStatement();
		ResultSet rsPartido = sql.executeQuery("SELECT * FROM partido WHERE partido.id_partido="+id_partido+";");
		Partido partido = new Partido();
		if(rsPartido.next()){
		partido.setId_partido(rsPartido.getInt("id_partido"));
		partido.setObservaciones(rsPartido.getString("detalles"));
		partido.setGolesLocal(rsPartido.getInt("golesLocal"));
		partido.setGolesVisitante(rsPartido.getInt("golesVisitante"));
		partido.setSuspendido(rsPartido.getBoolean("suspendido"));
		partido.setId_fecha(rsPartido.getInt("id_fecha"));
		partido.setId_torneo(rsPartido.getInt("id_torneo"));
		partido.setId_jugador(rsPartido.getInt("id_jugadorPartido"));
		}
		ConexionBD.desconectar();
		return partido;
	}

	public static void guardarPartido(Partido partido) throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
		ConexionBD.conectar();
		Statement sql = ConexionBD.conexion.createStatement();
		sql.executeUpdate("UPDATE partido " +
						 "SET detalles = "+"'"+partido.getObservaciones()+"'"+", golesLocal = "+partido.getGolesLocal()+", golesVisitante = "+partido.getGolesVisitante()+", suspendido = "+partido.isSuspendido()+ ", id_jugadorPartido = "+partido.getId_jugador()+" \n"
						+"WHERE id_partido = "+partido.getId_partido()+";");
		ConexionBD.desconectar();
	}

	public static ArrayList<DTOPartido> getPartidos(int id_fecha) {
		// TODO Auto-generated method stub
		//COMPLETAR DAO
		return new ArrayList<DTOPartido>();
	}

	public static void setSuspendido(Partido partido) throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
		ConexionBD.conectar();
		Statement sql = ConexionBD.conexion.createStatement();
		sql.executeUpdate("UPDATE partido " +
						 "SET detalles = "+"'"+partido.getObservaciones()+"'"+", suspendido = true \n"
						+"WHERE id_partido = "+partido.getId_partido()+";");
		ConexionBD.desconectar();
	}

}
